High Level Design

Breaking down the project

The entire project can be broken down into three major subsystems. For more information, take a look at our Final High Level Design document under the Documentation tab.

Data acquisition

The first subsystem required that we read game information as an SPI slave through DMA, calculate statistics, and then send them to ESP as a SPI master. The hardware included the breakout pins and the PIC32 micro controller, and the software was written in C.

WiFi transmission

Reads buffer as a SPI Slave and publishes to appropriate MQTT topics. The hardware involved with this subsystem was an ESP ThingDev, and the software was written in C++.

Data visualization

Receives data in MQTT server and exports to SQL tables on a web application. The hardware involved was a Raspberry Pi. The software was written in Python.